# -*- coding: utf-8 -*-
# &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
# Odoo Connector
# QQ:35350428
# 邮件:sale@100china.cn
# 手机：13584935775
# 作者：'amos'
# 公司网址： www.odoo.pw  www.100china.cn
# Copyright 昆山一百计算机有限公司 2012-2016 Amos
# 日期：2014-06-18
# &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

from odoo import api, fields, models, tools, SUPERUSER_ID, _
from odoo.exceptions import AccessDenied, AccessError, UserError, ValidationError
from odoo.osv import expression
import xmlrpclib
from datetime import *
import time
import uuid
from odoo.tools import float_is_zero, float_compare, DEFAULT_SERVER_DATETIME_FORMAT
from datetime import datetime, timedelta
import string
import random

class groups_res_users(models.Model):
    _inherit = 'res.users'


    @api.multi
    def button_add_groups(self):
        groups = self.env['res.groups'].sudo().search([('name', '=', self.name)], limit=1)
        groups_id = False
        if groups:
            groups_id = groups.id
        else:
            salt = ''.join(random.sample(string.ascii_letters + string.digits, 4))
            values = {
                'name': self.name,
                'value': salt,
            }
            authority = self.env['res.groups.name'].sudo().create(values)
            values = {
                'name': self.name,
                'authority_id': authority.id,
            }
            groups = self.env['res.groups'].sudo().create(values)
            groups_id = groups.id

        context = dict(self.env.context or {})
        return {
            'name': u'用户权限设置',
            'view_type': 'form',
            'view_mode': 'form',
            'res_model': 'res.groups',
            'view_id': self.env.ref('Amos_Groups_Tools.odoo_view_groups_form').id,
            'type': 'ir.actions.act_window',
            'res_id': groups_id or False,
            'context': context,
            'target': 'current'
        }

